<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<link rel="icon" href="../favicon.ico" />
	<title>1_类式组件</title>
</head>
<body>
	<!--  准备好一个容器 -->
	<div id="test"></div>
	
  <div id="test2"></div>
		
	<!-- 引入react核心库 -->
	<script type="text/javascript" src="../js/react.development.js"></script>
	<!-- 引入react-dom,用于支持react操作DOM -->
	<script type="text/javascript" src="../js/react-dom.development.js"></script>
	<!-- 引入babel,用于将 jsx转为 js-->
	<script type="text/javascript" src="../js/babel.min.js"></script>
	
	<script type="text/babel">
		//1. 创建类式组件, react中须继承
		// 组件: 包含页面资源和所有代码（html, css, js等）
		class MyComponent extends React.Component{
			render(){
				console.log('render中的this:',this)
				//render是放在哪里的？--MyComponent的原型对象上，供实例使用
				//render中的this是谁？-MyComponent的实例对象。MyComponent组件实例对象
				return <h2>我是用类定义的组件（适用于【复杂组件】的定义）</h2>
			}
			
		}

    class MyComponent2 extends React.Component{
      render(){
        console.log('render中的this：' + this)
        return <h2>我是类定义的组件2（适用于【复杂组件】的定义）</h2>
      }
    }
		
		//2. 渲染组件到页面, 组件名称首字母必须大写， 这里渲染时候必须传入标签且闭合
		ReactDOM.render(<MyComponent/>, document.getElementById('test'))

    ReactDOM.render(<MyComponent2/>, document.getElementById('test2'))
		/**
		 * 执行了ReactDOM.render(<MyComponent/>......之后，发生了什么？
		 * 1. React解析组件标签，找到了MyComponent组件
		 * 2. 发现组件是使用类定义的，随后new出来该类的实例，并通过该实例调用到原型上的render方法
		 * 
		 */
		
	</script>
</body>
</html>
